iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0
Modern Web

動起來吧!Web Motion 動態特效網頁學習日記系列 第 24

學習筆記:一起進入 PixiJS 的世界 (五)

  • 分享至 

  • xImage
  •  

目前已接觸的DisplayObject包含了PIXI.Graphics()的圖像繪製、PIXI.Text()的文字建立,這些物件都能將互動屬性interactive設定為true值,定義物件的互動效果。

而DisplayObject這些物件除了interactive外,還有其他屬性可以直接定義,像是可以使用xy屬性,可以直接定義物件的位置、rotation定義了旋轉角度、alpha定義不透明度,除了直接定義這些屬性外,也可於之後利用PIXI.Ticker將定期渲染的機制加進場景,搭配運算機制來建立基礎的小動畫。

變更物件的位置、旋轉角度、設定不透明度與其他屬性的方式很簡單,直接利用.把建構出的物件的屬性定義新的數值即可。

myObj.x = 200;
myObj.y = 200;
myObj.rotation = 45 - 2 * Math.PI;
myObj.alpha = 0.5;

除了直接控制物件的定位外,也可透過在場景中建立container的方式,可以當作圖層概念,利用各層container去管理物件之間的位置,對於重複或多類型複雜的圖像與場景來說,是個很合適的方式。

//建立基礎場景
let app = new PIXI.Application({ width:800, height: 400 })
document.body.appendChild(app.view);
//建立container並放入場景中
const container = new PIXI.Container();
app.stage.addChild(container);
//產生物件、放置於container中
let myObj = new PIXI.Graphics();
myObj.beginFill(0xffdd00);
myObj.drawCircle(0,0,50);
container.addChild(myObj);
//定位container
container.x = 200;
container.y = 200;

另外,除了數值外,也可以運用數學預算輕鬆達成置中效果;另外,因為初始建立的container的軸心為左上角位置,因此要達到正中央,可以在把container的pivot位置調整至container中間,之後用於等比例放大縮小、以中心旋轉角度等會更加方便。

//調整container至場景中心
container.x = app.screen.width / 2;
container.y = app.screen.height / 2;
//調整container的軸心位置
container.pivot.x = container.width / 2;
container.pivot.y = container.height / 2;

另外,container也是DisplayObject一員,所以也可以進行xyrotation屬性控制外,也可以將互動屬性interactive設定為true值,定義物件的互動效果囉!


上一篇
學習筆記:一起進入 PixiJS 的世界 (四)
下一篇
學習筆記:一起進入 PixiJS 的世界 (六)
系列文
動起來吧!Web Motion 動態特效網頁學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言